package com.prj.ufdm.auth.controller;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.prj.ufdm.auth.bpo._impl.SysFunctionBPOImpl;
import com.prj.ufdm.auth.model.SysFunction;
import com.prj.ufdm.core.dto.RetData;
import com.prj.ufdm.core.util.UfdmUUIDUtil;

/**
 * 系统功能控制类
 * @author 胡义振  
 * @date 2018年3月26日
 */
@RequestMapping(value = "/api/auth/sysfun")
@Controller
public class SysFunctionController {
	
	@Autowired
	SysFunctionBPOImpl sysFunctionBPO;
	
	/**
	 * 查询所有系统功能
	 * @return
	 * @author 胡义振  
	 * @date 2018年3月26日
	 */
	@RequestMapping(value = "/doGetFunctionList")
	@ResponseBody
	public RetData<List<SysFunction>> doGetFunctionList() throws Exception {
		RetData<List<SysFunction>> retData = new RetData<List<SysFunction>>();
		retData.setRetBody(sysFunctionBPO.doGetFunctionList());
		return retData;
	}
	
	/**
	 * 根据角色ID查询系统功能
	 * @return
	 * @author 胡义振  
	 * @date 2018年3月26日
	 */
	@RequestMapping(value = "/doGetFunctionListByRoleId")
	@ResponseBody
	public RetData<List<SysFunction>> doGetFunctionListByRoleId(String roleId) throws Exception {
		RetData<List<SysFunction>> retData = new RetData<List<SysFunction>>();
		retData.setRetBody(sysFunctionBPO.doGetFunctionListByRoleId(roleId));
		return retData;
	}
	
	/**
	 * 根据用户ID查询系统功能
	 * @return
	 * @author 胡义振  
	 * @date 2018年3月26日
	 */
	@RequestMapping(value = "/doGetFunctionListByUserId")
	@ResponseBody
	public RetData<List<SysFunction>> doGetFunctionListByUserId(String userId) throws Exception {
		RetData<List<SysFunction>> retData = new RetData<List<SysFunction>>();
		retData.setRetBody(sysFunctionBPO.doGetFunctionListByUserId(userId));
		return retData;
	}
	
	/**
	 * 保存系统功能
	 * @return
	 * @author 胡义振  
	 * @date 2018年3月26日
	 */
	@RequestMapping(value = "/doSaveFunction")
	@ResponseBody
	public RetData<String> doSaveFunction(SysFunction sysFunction) throws Exception {
		RetData<String> retData = new RetData<String>();
		sysFunction.setId(UfdmUUIDUtil.getUUID());
		sysFunctionBPO.doSave(sysFunction);
		return retData;
	}
	
	/**
	 * 修改系统功能
	 * @return
	 * @author 胡义振  
	 * @date 2018年3月26日
	 */
	@RequestMapping(value = "/doModFunction")
	@ResponseBody
	public RetData<String> doModFunction(SysFunction sysFunction) throws Exception {
		RetData<String> retData = new RetData<String>();
		sysFunctionBPO.doModById(sysFunction);
		return retData;
	}
	
	/**
	 * 删除系统功能
	 * @return
	 * @author 胡义振  
	 * @date 2018年3月26日
	 */
	@RequestMapping(value = "/doDelFunction")
	@ResponseBody
	public RetData<String> doDelFunction(String id) throws Exception {
		RetData<String> retData = new RetData<String>();
		sysFunctionBPO.doRmFunctionById(id);
		return retData;
	}
	
	
}
